2025.5.30 stack関数はコピーする【numpy】
stack 関数によって生成される配列は実体を持つ値から構成されている。
元になった配列に参照が含まれていたとしても、対応する値をコピーして生成している。
code:ravel02.py
import numpy as np
x_hist = []
x = np.array(1,2],[3,4)
for i in range(3):
x_hist.append(x.ravel()) # 参照を要素に持つ配列をリストにアペンド
x_hist = np.stack(x_hist) # 新たな配列を生成
print('# Before\n', x_hist)
x0,0 = -1 # 元の配列を操作 (1)
x_hist01 = -2 # 結果の配列を操作 (2)
print('# After\n', x_hist)
結果の配列は実体から構成されているので、(1)による影響を受けない。また(2)の結果も、操作した要素のみが変更されている。
code:result.txt
# Before
[1 2 3 4
1 2 3 4
1 2 3 4]
# After
[ 1 -2 3 4
1 2 3 4
1 2 3 4]
(参考) 2025.5.30 コピーと参照【numpy】